﻿using FrameworkCore.Migrations.Data;
using System.ComponentModel.DataAnnotations.Schema;

namespace Domain.Entities.Stocks;

#nullable disable

/// <summary>
/// 股票实体类，表示股票的基本信息。
/// </summary>
[Table("Stocks")]
public class Stock : BaseEntity
{
    /// <summary>
    /// 股票代码
    /// </summary>
    public string StockCode { get; set; }

    /// <summary>
    /// 股票名称
    /// </summary>
    public string StockName { get; set; }

    /// <summary>
    /// 市场类型（如：沪市/深市）。
    /// </summary>
    public string Market { get; set; }

    /// <summary>
    /// 导航属性，股票信息。
    /// </summary>
    public virtual ICollection<StockInformation> StockInformations { get; set; }

    /// <summary>
    /// 导航属性，表示与新股日历的关系。
    /// </summary>
    public virtual ICollection<NewStockCalendar> NewStockCalendars { get; set; }

    /// <summary>
    /// 导航属性，表示与实时交易的关系。
    /// </summary>
    public virtual ICollection<RealTimeTrade> RealTimeTrades { get; set; }

    /// <summary>
    /// 导航属性，表示与委托簿的关系。
    /// </summary>
    public virtual ICollection<OrderBook> OrderBooks { get; set; }

    /// <summary>
    /// 导航属性，表示与逐笔成交的关系。
    /// </summary>
    public virtual ICollection<TickTrade> TickTrades { get; set; }

    /// <summary>
    /// 导航属性，表示与大宗交易的关系。
    /// </summary>
    public virtual ICollection<LargeTrade> LargeTrades { get; set; }

    /// <summary>
    /// 导航属性，表示与分钟交易的关系。
    /// </summary>
    public virtual ICollection<MinuteTrade> MinuteTrades { get; set; }

    /// <summary>
    /// 导航属性，表示与技术指标的关系。
    /// </summary>
    public virtual ICollection<TechnicalIndicator> TechnicalIndicators { get; set; }
}
